package org.jeecg.modules.htxincailiao.order.domain.bo;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: ht_order
 * @Author: jeecg-boot
 * @Date:   2021-08-05
 * @Version: V1.0
 */
@Data
@TableName("ht_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="ht_order对象", description="ht_order")
public class HTOrderCreateBO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**主键ID*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键ID")
    private String id;
    /**父订单ID*/
    @Excel(name = "父订单ID", width = 15)
    @ApiModelProperty(value = "父订单ID")
    private String parentId;
    /**订单编号*/
    @Excel(name = "订单编号", width = 15)
    @ApiModelProperty(value = "订单编号")
    private String orderSn;
    /**买家ID*/
    @Excel(name = "买家ID", width = 15)
    @ApiModelProperty(value = "买家ID")
    private String buyerId;
    /**优惠券id*/
    @Excel(name = "优惠券id", width = 15)
    @ApiModelProperty(value = "优惠券id")
    private String couponId;
    /**支付ID*/
    @Excel(name = "支付ID", width = 15)
    @ApiModelProperty(value = "支付ID")
    private String paymentId;
    /**发货地址ID*/
    @Excel(name = "发货地址ID", width = 15)
    @ApiModelProperty(value = "发货地址ID")
    private String addressId;
    /**退款ID*/
    @Excel(name = "退款ID", width = 15)
    @ApiModelProperty(value = "退款ID")
    private String refundId;
    /**订单来源*/
    @Excel(name = "订单来源", width = 15)
    @ApiModelProperty(value = "订单来源")
    private Integer orderSource;
    /**商品总数量*/
    @Excel(name = "商品总数量", width = 15)
    @ApiModelProperty(value = "商品总数量")
    private Integer totalQuantity;
    /**商品总金额*/
    @Excel(name = "商品总金额", width = 15)
    @ApiModelProperty(value = "商品总金额")
    private BigDecimal totalAmount;
    /**优惠总金额*/
    @Excel(name = "优惠总金额", width = 15)
    @ApiModelProperty(value = "优惠总金额")
    private BigDecimal totalDiscountAmount;
    /**支付总金额*/
    @Excel(name = "支付总金额", width = 15)
    @ApiModelProperty(value = "支付总金额")
    private BigDecimal totalPaymentAmount;
    /**总运费*/
    @Excel(name = "总运费", width = 15)
    @ApiModelProperty(value = "总运费")
    private BigDecimal totalFreight;
    /**订单留言*/
    @Excel(name = "订单留言", width = 15)
    @ApiModelProperty(value = "订单留言")
    private String leaveMessage;
    /**是否拆分*/
    @Excel(name = "是否拆分", width = 15)
    @ApiModelProperty(value = "是否拆分")
    private Boolean isSplitted;
    /**订单状态：0-待付款、1-待发货、2-待收货、3-已完成、4-已取消*/
    @Excel(name = "订单状态：0-待付款、1-待发货、2-待收货、3-已完成、4-已取消", width = 15, dicCode = "order_status")
    @Dict(dicCode = "order_status")
    @ApiModelProperty(value = "订单状态：0-待付款、1-待发货、2-待收货、3-已完成、4-已取消")
    private Integer status;
    /**逻辑删除：1表示删除，0表示未删除。*/
    @Excel(name = "逻辑删除：1表示删除，0表示未删除。", width = 15)
    @ApiModelProperty(value = "逻辑删除：1表示删除，0表示未删除。")
    private Boolean isDeleted;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
}
